home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / fslcl / fslcl.h < prev    next >
C/C++ Source or Header  |  1992-12-18  |  2KB  |  75 lines

  1. /*
  2.  * fslcl.h --
  3.  *
  4.  *    Definitions of the parameters required for Local Domain operations.
  5.  *
  6.  * Copyright 1990 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that the above copyright
  10.  * notice appear in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  *
  15.  * $Header: /cdrom/src/kernel/Cvsroot/kernel/fslcl/fslcl.h,v 9.6 92/08/10 17:28:29 mgbaker Exp $ SPRITE (Berkeley)
  16.  */
  17.  
  18. #ifndef _FSLCL
  19. #define _FSLCL
  20.  
  21.  
  22. /*
  23.  * A directory entry:  Note that this is compatible with 4.3BSD 'struct direct'
  24.  */
  25. typedef struct Fslcl_DirEntry {
  26.     int fileNumber;        /* Index of the file descriptor for the file. */
  27.     short recordLength;        /* How many bytes this directory entry is */
  28.     short nameLength;        /* The length of the name in bytes */
  29.     char fileName[FS_MAX_NAME_LENGTH+1];    /* The name itself */
  30. } Fslcl_DirEntry;
  31. /*
  32.  *    FSLCL_DIR_BLOCK_SIZE    Directory's grow in multiples of this constant,
  33.  *        and records within a directory don't cross directory blocks.
  34.  *    FSLCL_DIR_ENTRY_HEADER    The size of the header of a FslclDirEntry;
  35.  *    FSLCL_REC_LEN_GRAIN    The number of bytes in a directory record
  36.  *                are rounded up to a multiple of this constant.
  37.  */
  38. #define FSLCL_DIR_BLOCK_SIZE    512
  39. #define FSLCL_DIR_ENTRY_HEADER    (sizeof(int) + 2 * sizeof(short))
  40. #define FSLCL_REC_LEN_GRAIN    4
  41.  
  42. #ifdef KERNEL
  43. #include <fscache.h>
  44. #include <fsio.h>
  45. #include <fsconsist.h>
  46. #include <fsioFile.h>
  47. #else
  48. #include <fs.h>
  49. #endif
  50.  
  51. /*
  52.  * Fslcl_DirRecLength --
  53.  *    This computes the number of bytes needed for a directory entry.
  54.  *    The argument should be the return of the String_Length function,
  55.  *    ie, not include the terminating null in the count.
  56.  */
  57. #define Fslcl_DirRecLength(stringLength) \
  58.     (FSLCL_DIR_ENTRY_HEADER + \
  59.     ((stringLength / FSLCL_REC_LEN_GRAIN) + 1) * FSLCL_REC_LEN_GRAIN)
  60.  
  61. #ifdef KERNEL
  62. /*
  63.  * Misc. routines.
  64.  */
  65. extern void Fslcl_DomainInit _ARGS_((void));
  66. extern ReturnStatus Fslcl_DeleteFileDesc _ARGS_((Fsio_FileIOHandle *handlePtr));
  67. extern void Fslcl_NameInitializeOps _ARGS_((void));
  68. extern void Fslcl_NameHashInit _ARGS_((void));
  69. void Fslcl_CheckDirLog _ARGS_((Fsio_FileIOHandle *parentHandlePtr,
  70.     List_Links *dirLogList));
  71.  
  72. #endif /* KERNEL */
  73.  
  74. #endif /* _FSLCL */
  75.